import { ElMessage, ElMessageBox } from 'element-plus'
import Big from 'big.js'

const PHONE = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/
const xh = {

    cf: (a, b) => {

        let x = new Big(a)
        let y = x.times(b) // '1.8'
        console.log(Big('7e+500').times(y))
        return Big('7e+500').times(y) // '1.8'


    },

    // 提示删除
    DelMessageBox: (title = '是否删除', type = 'warning', fun) => {
        return new Promise((v, j) => {
            ElMessageBox.confirm(`注：${title}`, type, {
                confirmButtonText: '确认',
                cancelButtonText: '取消',
                type: 'warning'
            })
                .then(() => {
                    v(true)
                })
                .catch(() => {
                    v(false)
                })
        })
    },
    // 提示保存
    SubMessageBox: (title = '是否保存', type = 'warning', fun) => {
        return new Promise((v, j) => {
            ElMessageBox.confirm(`注：${title}`, type, {
                confirmButtonText: '确认',
                cancelButtonText: '取消',
                type: 'warning'
            })
                .then(() => {
                    v(true)
                })
                .catch(() => {
                    v(false)
                })
        })
    },

    FreezMessageBox: (title = '是否解冻/封存', type = 'warning', fun) => {
        return new Promise((v, j) => {
            ElMessageBox.confirm(`注：${title}`, type, {
                confirmButtonText: '确认',
                cancelButtonText: '取消',
                type: 'warning'
            })
                .then(() => {
                    v(true)
                })
                .catch(() => {
                    v(false)
                })
        })
    },
    // 提示审核
    ExamineMessageBox: (title = '是否确定提交审核？', type = 'warning', fun) => {
        return new Promise((v, j) => {
            ElMessageBox.confirm(`注：${title}`, type, {
                confirmButtonText: '确认',
                cancelButtonText: '取消',
                type: 'warning'
            })
                .then(() => {
                    v(true)
                })
                .catch(() => {
                    v(false)
                })
        })
    },
    // 撤销审核提示
    RevokeMessageBox: (title = '是否确定撤销审核？', type = 'warning', fun) => {
        return new Promise((v, j) => {
            ElMessageBox.confirm(`注：${title}`, type, {
                confirmButtonText: '确认',
                cancelButtonText: '取消',
                type: 'warning'
            })
                .then(() => {
                    v(true)
                })
                .catch(() => {
                    v(false)
                })
        })
    },
    //
    MessageBox: (title = '是否', type = 'warning', fun) => {
        return new Promise((v, j) => {
            ElMessageBox.confirm(`注：${title}`, type, {
                confirmButtonText: '确认',
                cancelButtonText: '取消',
                type: 'warning'
            })
                .then(() => {
                    v(true)
                })
                .catch(() => {
                    v(false)
                })
        })
    },

    // 成功提示
    successMsg: cemment => {
        ElMessage['success'](cemment)
    },
    // 失败提示
    errorMsg: cemment => {
        ElMessage['error'](cemment)
    },
    // 警告提示
    warningMsg: cemment => {
        ElMessage['warning'](cemment)
    },
    // 提示 表单提示
    formMsg: () => {
        ElMessage['warning']('请填写完整')
    },
    // 表单校验 类别编码不为汉字
    noChinese: (rule, value, callback) => {
        if (!/^[^\u4e00-\u9fa5]+$/.test(value)) return callback(new Error('编码不能包含汉字'))
        callback()
    },

    // 表单验证 ,编码只能由数字、字母、下划线组成
    alphabet: (rule, value, callback) => {
        if (!/^[0-9a-zA-Z_]{1,}$/.test(value)) return callback(new Error('编码只能由数字、字母、下划线组成'))
        callback()
    },
    // 输入框必须为正整数
    isNumber: (rule, value, callback) => {
        if (!/^[0-9]*[1-9][0-9]*$/.test(value)) return callback(new Error('请输入正整数'))
        callback()
    },
    // 校验 手机号
    isPhone: (rule, value, callback) => {
        // 没有输入值通过
        if (!value) return callback()
        if (!PHONE.test(value)) return callback(new Error('请正确输入手机号！'))
        callback()
    },



}

export default xh